الگوریتم چیست؟
 
دنیای برنامه نویسی
 
 

الگوریتم چیست؟؟؟؟؟

در کل به مجموعه ای از دستور العمل ها و فرمول هایی که با زبان رسا و دقیق به همراه جزئیات لازم و به صورت مرحله به مرحله به گونه اجرا شده باشند که هد خاصی را دنبال کنند و شروع و پایان آنها نیز مشخص باشد، الگوریتم گفته میشود.کلمه الگوریتم از نام ریاضیدان برجسته ایرانی, ابو جعفر محمد بن موسی الخوارزمی و به پاس خدمات ارزنده او به توسعه دانش بشری گرفته شده‌است. او اولین کسی است که علم جبر را کشف کرد.

 

در اينجا دو تعريف را براي الگوريتم بيان مي‌كنيم:

۱- مجموعه‌ای خاص از روال منطقی و یا ریاضی ساده و خوب تبیین شده می‌باشد که می‌تواند در حل یک مسئله مشخص کمک کند. الگوریتم دستورالعملی برای یافتن پاسخ درست یک مساله سخت به وسیله شکستن آن مساله به مراحل ساده و آسان می‌باشد .
۲- هر روال محاسباتی خوش تعریفی است که مقداری, یا مجموعه‌ای از مقادیر را بعنوان ورودی می‌گیرد و مقداری, یا مجموعه‌ای از مقادیر را بعنوان خروجی تولید می‌کند. بنابراین یک الگوریتم یک توالی از گام‌های محاسباتی است که ورودی را به خروجی تبدیل می‌کند.
یک الگوریتم یابد سه شرط اساسی زیر را تأمین کند :

  • لیست دستورالعمل‌ها باید محدود بوده و به اندازه‌ای کوتاه باشد تا قابل اجرا گردد.
  • هر دستورالعمل باید دارای قابلیت اجرا باشد، شما هم باید بتوانید اجرا کارهای یاد شده را به اجرا برسانید.

  • الگوریتم باید روند اجرا را قادر سازد تا در یک نقطه به پایان برسد.

مثلا اين جوك معروف را در نظر بگيريد:

مي دوني يک فيل را چطوري با سه حرکت مي گذارند توي يخچال؟ اول در يخچال را باز مي کنند، بعد فيل را مي گذارند توش، بعد هم در يخچال را مي بندند.

شايد جواب اين جك ظاهرا يك الگوريتم باشد، اما اينطور نيست چون ويژگي دوم يعني قابل اجرا بودن را ندارد.

 

خصوصیات یک الگوریتم

تمام الگوریتم‌ها باید شرایط و معیارهای زیر را دارا باشند:

  • ورودی: یک الگوریتم باید هیچ یا چندین پارامتر را به عنوان ورودی بپذیرد؛
  • خروجی: الگوریتم بایستی حداقل یک کمیت به عنوان خروجی (نتیجه عملیات) تولید کند؛
  • قطعیت: دستورات الگوریتم باید با زبانی دقیق، و بی‌ابهام بیان شوند. هر دستورالعمل نیز باید انجام‌پذیر باشد. دستوراتی نظیر «مقدار ۶ یا ۷ را به x اضافه کنید» یا «حاصل تقسیم پنج بر صفر را محاسبه کنید» مجاز نیستند؛ چرا که در مورد مثال اول، معلوم نیست که بالاخره چه عددی باید انتخاب شود، و در خصوص مثال دوم هم تقسیم بر صفر در ریاضیات تعریف نشده‌است.
  • محدودیت: الگوریتم باید دارای شروع و پایان مشخصی باشد، به نحوی که اگر دستورات آن را دنبال کنیم، برای تمامی حالات، الگوریتم پس از طی مراحل شمارا و متناهی خاتمه یابد. به علاوه، زمان لازم برای خاتمه الگوریتم هم باید به گونه‌ای معقول، کوتاه باشد.

 منشاء واژهٔ الگوریتم

واژهٔ الگوریتم از نام دانشمند ایرانی، محمد ابن موسی خوارزمی، گرفته شده است. کتاب معروف الجبر و المقابله خوارزمی که حاوی دستورالعمل‌های مختلف برای حل مسائل محاسباتی است، از راه ترجمه به زبان اسپانیایی در اروپا شناخته شد و نام عربی او، الخوارزمی، (از طریق آوانگاری آن در زبان اسپانیایی و سپس ورود آن به دیگر زبان‌های اروپایی) مترادف شد با «دستورهای حل مسائل».

 نقش الگوریتم‌ها در علوم رایانه

در علوم رایانه، یک الگوریتم را یک روال محاسباتی خوش‌تعریف می‌دانند، که مقدار یا مجموعه‌ای از مقادیر را به عنوان ورودی (Input) دریافت کرده و پس از طی چند گام محاسباتی، ورودی را به خروجی (Output) تبدیل می‌کند. بجز این، الگوریتم را ابزاری برای حل مسائل محاسباتی نیز تعریف کرده‌اند. ساخت و طراحی الگوریتم مناسب در مرکز فعالیت‌های برنامه‌سازی رایانه قرار دارد. یک برنامه رایانه‌ای، بیان یک یا چند الگوریتم با یک زبان برنامه‌نویسی است.

 مفهوم الگوریتم

مفهوم الگوریتم را معمولاً با تشبیه به دستور آشپزی توضیح می‌دهند. مثلاً اگر بخواهیم آبگوشت درست کنیم (عمل مورد نظر) با فرض اینکه مواد خام را داریم (حالت اولیه) مراحل مشخصی را باید طبق دستور آشپزی طی کنیم (دستورالعمل‌ها) تا به آبگوشت آماده (حالت پایانی) برسیم. البته الگوریتم‌ها معمولاً پیچیده‌تر از این هستند.

الگوریتم گاه دارای مراحلی است که تکرار می‌شود (در مثال آبگوشت مثلاً چند بار باید نمک زد یا آب اضافه کرد) و یا در مرحله‌ای نیازمند تصمیم‌گیری است (اگر نمک کافی است دیگر نمک نمی‌زنیم، اگر کافی نیست نمک می‌زنیم).

اگر الگوریتم برای عمل مورد نظر مناسب نباشد و یا غلط باشد به نتیجه مورد نظر نمی‌رسیم. مثلاً اگر الگوریتم آبگوشت را با مواد اولیه کباب انجام دهیم واضح است که به آبگوشت نمی‌رسیم.

باید بدانیم برای هر الگوریتم تعریف متغیر ها و طراحی مرحله به مرحله بسیار مهم است. زیرا الگوریتم باید بداند بر روی چه متغیر هایی، چه اعمالی را انجام دهد و نتیجه را در غالب چه متغیر ها یا پارامتر هایی نشان دهد.

 تحلیل الگوریتم

معمولاً برای حل یک مسئله، روش‌ها و الگوریتم‌های گوناگونی وجود دارند؛ یک الگوریتم ممکن است عمل مورد نظر را با دستورات مختلف در مدت زمان و یا کار کمتر یا بیشتری نسبت به الگوریتم دیگر انجام دهد. به همین دلیل، انتخاب الگوریتم مناسب و کارا اهمیت زیادی در موفق بودن و کارایی برنامه رایانه‌ای دارد. الگوریتم‌ها به عنوان یک فناوری مطرح هستند و دانشمندان آنها را طراحی، تحلیل، و مطالعه می‌کنند. تحلیل الگوریتم‌ها رشته‌ای است که به بررسی کارایی الگوریتم‌ها می‌پردازد. تحلیل الگوریتم‌ها یعنی پیش‌بینی منابع مورد نیاز برای اجرای یک الگوریتم، همچون: حافظه، پهنای‌باند ارتباطی، سخت‌افزار، و از همه مهمتر، زمان. کارایی یا پیچیدگی هر الگوریتم را با تابعی نشان می‌دهند که تعداد مراحل لازم برای اجرای الگوریتم را برحسب طول داده ورودی، یا میزان محل‌های لازم حافظه را بر حسب طول داده ورودی نشان می‌دهد.

جنبه حقوقی

در بعضی کشورها، مثل آمریکا اگر تعبیه فیزیکی الگوریتمی ممکن باشد (برای مثال، یک الگوریتم ضرب که می‌شود آن را در واحد محاسبهٔ یک ریز پردازنده تعبیه کرد) می‌شود آن الگوریتم را به ثبت رساند


نظرات شما عزیزان:

برنامه نویس
ساعت17:37---28 دی 1391
سلام
دنیای من برنامه نویسیه.
انشاءا... وبلاگ پرباری داشته باشی
به منم سر بزن(البته به برنامه نویسی ربطی نداره)
مشکلی داشتی رو من حساب کن


نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:







درباره وبلاگ


به وبلاگ من خوش آمدید وبلاگ من درباره ی کامپیوتر و برنامه نویسی است لطفا در وبلاگ من عضو شوید!
آخرین مطالب
آرشيو وبلاگ
پيوندها

تبادل لینک هوشمند
برای تبادل لینک  ابتدا ما را با عنوان دنیای برنامه نویسی و آدرس worldprogrammer.LXB.ir لینک نمایید سپس مشخصات لینک خود را در زیر نوشته . در صورت وجود لینک ما در سایت شما لینکتان به طور خودکار در سایت ما قرار میگیرد.





نويسندگان


ورود اعضا:

نام :
وب :
پیام :
2+2=:
(Refresh)

خبرنامه وب سایت:





آمار وب سایت:  

بازدید امروز : 15
بازدید دیروز : 3
بازدید هفته : 32
بازدید ماه : 37
بازدید کل : 5453
تعداد مطالب : 17
تعداد نظرات : 14
تعداد آنلاین : 1